<?php 
    /**
     * DAOFactory
     *
     * @package br.com.paa.DAO
     * @author OPEN COMPUTADORES
     * @copyright 2011
     * @version 1.0
     * @access Public
     * @tutorial Classe fabrica responsavel pela criacao de Objetos DAO
     */
    class DAOFactory {
		/*
		 * Instancia do Objeto DAOFactory para esta classe.
		 */
		private static $instancia = null;
		
		/*
		 * DAOFactory::getInstancia
		 *
		 * @package DAO/
		 * @param Void
		 * @return Objeto DAOFactory
		 * @tutorial: Verifica se existe uma instancia do Objeto DAOFactory, caso contrario
		 * da um new e retorna o objeto
		 */
		public static function getInstancia(){
		    if(self::$instancia == null){
		        self::$instancia = new DAOFactory();
		    }
		    return self::$instancia;
		}
		
		/*
		 * DAOFactory::__clone
		 *
		 * @package DAO/
		 * @param Void
		 * @return Null
		 * @tutorial: Impede que este objeto seja clonado
		 * @exception: Clone nao e permitido.
		 */
		public function __clone() {
		    trigger_error('Clone nao e permitido.', E_USER_ERROR);
		}

		/*
		 * DAOFactory::getClienteDAO
		 * @package DAO/
		 * @param Void
		 * @return Objeto ClienteDAO
		 */
               public function getClienteDAO(){
                    require_once('ClienteDAO.php');
                    return new ClienteDAO();
               }

               public function getProdutoDAO(){
                    require_once('ProdutoDAO.php');
                    return new ProdutoDAO();
               }
		
		
       
}
?>